home *** CD-ROM | disk | FTP | other *** search
/ SGI Origin & Onyx2 Patches 1998 May / Origin and Onyx2 System Disk Patches May 1998.img / dist / patchSG0001765.idb / usr / include / dmedia / vl_mgc.h.z / vl_mgc.h
C/C++ Source or Header  |  1997-05-19  |  8KB  |  243 lines

  1. /**************************************************************************
  2.  *                                                                        *
  3.  *               Copyright (C) 1994, Silicon Graphics, Inc.               *
  4.  *                                                                        *
  5.  *  These coded instructions, statements, and computer programs  contain  *
  6.  *  unpublished  proprietary  information of Silicon Graphics, Inc., and  *
  7.  *  are protected by Federal copyright law.  They  may  not be disclosed  *
  8.  *  to  third  parties  or copied or duplicated in any form, in whole or  *
  9.  *  in part, without the prior written consent of Silicon Graphics, Inc.  *
  10.  *                                                                        *
  11.  **************************************************************************/
  12.  
  13. #ifndef __DEV_MGC_H__
  14. #define __DEV_MGC_H__
  15.  
  16. /*
  17.  *  dev_mgc.h
  18.  *
  19.  *  MGC device dependent control definitions.
  20.  *
  21.  * $Revision: 1.6 $
  22.  */
  23.  
  24. /*
  25.  * MGC Input Node definitions
  26.  */
  27. #define VL_MGC_VID_ANALOG     4     /*Analog Video node id*/
  28. /*
  29.  * MGC Input VL_MUXSWITCH definitions
  30.  */
  31.  
  32. /* Analog node */
  33. #define    VL_MGC_COMPOSITE        0    /* composite (RCA-type conn.) */
  34. #define    VL_MGC_SVIDEO            1    /* S Video (Mini-DIN conn.) */
  35.  
  36. /*
  37.  * MGC Input VL_SYNC_SOURCE definition
  38.  */
  39. #define    VL_MGC_GENLOCK            2    /* Genlock sync source*/
  40.  
  41. /*SYNC definitions*/
  42.  
  43. #define VL_MGC_SYNC_SLAVE    0x10000000    /*same as GAL 1.0 VL_EV1_SYNC_SLAVE*/
  44.  
  45.  
  46. /*
  47.  * MGC device-specific controls start at VL_MGC_CTL_BASE
  48.  *
  49.  */
  50. /*must match the definition in vl_mgv.h*/
  51. #define VL_MGC_MGV_CTL_BASE (('M'<<24)|('G'<<16))
  52. #define VL_MGC_CTL_BASE        (VL_MGC_MGV_CTL_BASE+512)
  53.  
  54. /*
  55.  * MGC impact video like memory controls
  56.  * must be the same as in impact video dev_mgv.h
  57.  */
  58.  
  59.  
  60. /*
  61.  *    VGI1 Memory Node DMA controls 
  62.  */
  63. #define VL_MGC_DOMINANCE_FIELD          (VL_MGC_MGV_CTL_BASE + 36)
  64. #define VL_MGC_DMA_VIN_ROUND        (VL_MGC_MGV_CTL_BASE + 71)
  65. #define VL_MGC_DMA_ROUND_TYPE        (VL_MGC_MGV_CTL_BASE + 73)
  66. #define VL_MGC_DMA_RAND_ROUND_MODE    (VL_MGC_MGV_CTL_BASE + 74)
  67. #define VL_MGC_BUFFER_QUANTUM        (VL_MGC_MGV_CTL_BASE + 77)
  68. #define VL_MGC_DMA_VOUT_STARVATION    (VL_MGC_MGV_CTL_BASE + 78)
  69.  
  70. /*
  71.  *  Field dominance can be set independently for each GIO DMA channel.
  72.  *
  73.  *  NOTE: This is a memory node control, not a device node control.
  74.  *
  75.  * For use with: VL_MGC_DOMINANCE_FIELD
  76.  */
  77. #define VL_MGC_DOMINANCE_F1     0       /* F1 dominance - default*/
  78. #define VL_MGC_DOMINANCE_F2     1       /* F2 dominance */
  79.  
  80. /*
  81.  *  DMA Starvataion Policy
  82.  *
  83.  *  When transferring from memory to video using a GIO DMA channel, if
  84.  *  data is not provided quickly enough by the application (vlPutValid()),
  85.  *  or when data is repeated due to rate control
  86.  *  then one of the following two actions can be taken until more data
  87.  *  becomes available:
  88.  *
  89.  *
  90.  *    VL_MGC_DMA_VO_STARV_RPT:
  91.  *
  92.  *          Repeat the last unit transferred (field or frame).  This
  93.  *     will occur until the next transfer unit becomes available.
  94.  *     In order to repeat, the unit is DMAed continuously.
  95.  *
  96.  *    VL_MGC_DMA_VO_STARV_FLD:
  97.  *
  98.  *          For frames, repeat only the last field until the next transfer
  99.  *     unit becomes available.  Once starvation is detected, the
  100.  *     non-dominant field is output as both the F1 and F2 fields.  This
  101.  *     results in halving the vertical resolution, but eliminates
  102.  *     inter-field motion blur.  In order to repeat, the field is DMAed
  103.  *     continuously.
  104.  *
  105.  *     If the capture type is not either of interleaved or non-interleaved
  106.  *     frames (it is a field in other words), then this control value is
  107.  *     identical in behavior to VL_MGC_DMA_VO_STARV_RPT.
  108.  *
  109.  *     NOTE: The buffer entry of the repeated unit does not again
  110.  *           become available to the application (vlGetnNextFree())
  111.  *           until another transfer unit is ready for DMA.  Therefore,
  112.  *           in order to use this mode, a buffer of at least two
  113.  *           entries must be created.  A minimum if four is required
  114.  *           for non-interleaved frames.
  115.  *
  116.  *    NOTE: This control is only available on memory/codec source nodes.
  117.  *
  118.  * For use with: VL_MGC_DMA_VOUT_STARVATION
  119.  */
  120. #define VL_MGC_DMA_VO_STARV_RPT    1    /* Repeat last field/frame - default */
  121. #define VL_MGC_DMA_VO_STARV_FLD    2    /* Repeat last field of frame only */
  122.  
  123.  
  124. /* Note that following rounding modes only affect capture/compression when
  125.  * the source is 10 bit digital video from impact video
  126.  */
  127.  
  128. /*
  129.  *  GIO DMA memory / codec drain 10-bit -> 8-bit rounding enable.
  130.  *
  131.  * For use with: VL_MGC_DMA_VIN_ROUND
  132.  */
  133. #define VL_MGC_DMA_RND_OFF    0    /* Disable causes truncation - default */
  134. #define VL_MGC_DMA_RND_ON    1    /* Enable  causes rounding */
  135.  
  136. /*
  137.  *  GIO DMA memory / codec drain rounding type.
  138.  *
  139.  * For use with: VL_MGC_DMA_ROUND_TYPE
  140.  */
  141. #define VL_MGC_DMA_RND_SMPLE    0    /* Simple rounding - default */
  142. #define VL_MGC_DMA_RND_RAND    1    /* Radomized rounding */
  143.  
  144.  
  145. /*
  146.  *  GIO DMA memory / codec drain randomized rounding mode.
  147.  *
  148.  * For use with: VL_MGC_DMA_RAND_ROUND_MODE
  149.  */
  150. #define VL_MGC_DMA_RND_RAND_RPT     0    /* Repeat random sequence - default */
  151. #define VL_MGC_DMA_RND_RAND_FREE 1    /* Random sequence free wheels */
  152.  
  153.  
  154.  
  155.  
  156. #define VL_MGC_MISC_BASE        (VL_MGC_CTL_BASE + 0)
  157.  
  158.  
  159. /*
  160.  * MGC Analog input device-specific controls.
  161.  */
  162.  
  163.  
  164. #define VL_MGC_VTR_LOCK            (VL_MGC_MISC_BASE +  0)
  165. #define VL_MGC_CORING            (VL_MGC_MISC_BASE +  1)
  166. #define VL_MGC_APERTURE            (VL_MGC_MISC_BASE +  2)
  167. #define VL_MGC_BANDPASS            (VL_MGC_MISC_BASE +  3)
  168. #define VL_MGC_PREFILTER        (VL_MGC_MISC_BASE +  4)
  169. #define VL_MGC_CHROMA_AGC        (VL_MGC_MISC_BASE +  6)
  170. #define VL_MGC_LUMA_DELAY        (VL_MGC_MISC_BASE +  7)
  171. #define VL_MGC_CHROMA_DELAY        (VL_MGC_MISC_BASE +  8)
  172. #define VL_MGC_VNOISE_REDUCER        (VL_MGC_MISC_BASE +  9)
  173. #define VL_MGC_CHROMA_GAIN        (VL_MGC_MISC_BASE + 10)
  174. #define VL_MGC_COLOR_KILL_THRES        (VL_MGC_MISC_BASE + 11)
  175. #define    VL_MGC_FORCE_COLOR        (VL_MGC_MISC_BASE + 12)
  176. #define VL_MGC_PAL_SENS            (VL_MGC_MISC_BASE + 13)
  177. #define VL_MGC_AUFD            (VL_MGC_MISC_BASE + 14)
  178.  
  179.  
  180. /*
  181.  * MGC Analog output device-specific controls.
  182.  */
  183.  
  184. #define VL_MGC_SCH_PHASE        (VL_MGC_MISC_BASE + 27)
  185. #define VL_MGC_SUB_FREQ             (VL_MGC_MISC_BASE + 28)
  186. #define VL_MGC_COLOR_OUT_KILL        (VL_MGC_MISC_BASE + 29)
  187. #define VL_MGC_CHROMA_BAND        (VL_MGC_MISC_BASE + 30)
  188. #define VL_MGC_INCREMENT_DELAY        (VL_MGC_MISC_BASE + 31)
  189. #define VL_MGC_DELAY_SYNC        (VL_MGC_MISC_BASE + 32)
  190. #define VL_MGC_MOD_7199            (VL_MGC_MISC_BASE + 33)
  191. #define VL_MGC_DD_7199            (VL_MGC_MISC_BASE + 34)
  192. #define VL_MGC_STD_7199            (VL_MGC_MISC_BASE + 35)
  193. #define VL_MGC_C_GAIN            (VL_MGC_MISC_BASE + 36)
  194. #define VL_MGC_YC_GAIN            (VL_MGC_MISC_BASE + 37)
  195. #define VL_MGC_ANTI_DITHER        (VL_MGC_MISC_BASE + 38)
  196.  
  197. /*for output genlock also works on memory src nodes*/
  198. #define VL_MGC_H_OFFSET            (VL_MGC_MISC_BASE + 39)
  199. #define VL_MGC_V_OFFSET            (VL_MGC_MISC_BASE + 40)
  200.  
  201. /*
  202.  MGC Memory node controls
  203. */
  204.  
  205.  
  206. #define VL_MGC_HASPECT            (VL_MGC_MISC_BASE + 41)
  207. #define VL_MGC_VASPECT            (VL_MGC_MISC_BASE + 42)
  208.  
  209. #define VL_MGC_PAD_TOP            (VL_MGC_MISC_BASE + 43)
  210. #define VL_MGC_PAD_BOTTOM        (VL_MGC_MISC_BASE + 44)
  211. #define VL_MGC_PAD_LEFT            (VL_MGC_MISC_BASE + 45)
  212. #define VL_MGC_PAD_RIGHT        (VL_MGC_MISC_BASE + 46)
  213. #define VL_MGC_PAD_ENABLE        (VL_MGC_MISC_BASE + 47)
  214. #define VL_MGC_PAD_Y            (VL_MGC_MISC_BASE + 48)
  215. #define VL_MGC_PAD_U            (VL_MGC_MISC_BASE + 49)
  216. #define VL_MGC_PAD_V            (VL_MGC_MISC_BASE + 50)
  217.  
  218. #define VL_MGC_VIDEO_TOP_CLIP        (VL_MGC_MISC_BASE + 51)
  219.  
  220. #define VL_MGC_NO_MSC_UST        (VL_MGC_MISC_BASE + 52)
  221.  
  222. #define VL_MGC_UNZOOMED_OFFSET        (VL_MGC_MISC_BASE + 53)
  223. #define VL_MGC_UNZOOMED_UNPAD_SIZE    (VL_MGC_MISC_BASE + 54)
  224. #define VL_MGC_UNZOOMED_SIZE        (VL_MGC_MISC_BASE + 55)
  225. #define VL_MGC_F1_EXTRA_OFFSET        (VL_MGC_MISC_BASE + 56)
  226. #define VL_MGC_F2_EXTRA_OFFSET        (VL_MGC_MISC_BASE + 57)
  227. #define VL_MGC_NO_INTER        (VL_MGC_MISC_BASE + 60) /*gal 1.0 mode*/
  228.  
  229. /*
  230. MGC Device node controls
  231. */
  232.  
  233. #define VL_MGC_DEFAULT_ANALOG_PLAY_SYNC_SOURCE    (VL_MGC_MISC_BASE + 58)
  234. #define VL_MGC_DEFAULT_DIGITAL_PLAY_SYNC_SOURCE    (VL_MGC_MISC_BASE + 59)
  235.  
  236. #define VL_MGC_SYNC_SOURCE_DEFAULT 0
  237. #define VL_MGC_SYNC_SOURCE_ANALOG_IN 1
  238. #define VL_MGC_SYNC_SOURCE_ANALOG_GENLOCK 2
  239. #define VL_MGC_SYNC_SOURCE_DIGITAL_GENLOCK 3
  240.  
  241.  
  242. #endif /* __DEV_MGC_H__ */
  243.